package service.impl;

import dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pojo.User;
import service.UserService;

import java.util.List;

/**
 * 用户服务实现类，实现了UserService接口中的所有方法。
 * 通过@Autowired注解注入UserDao对象，用于与数据库进行交互。
 */
@Service("userService")
public class UserServiceImpl implements UserService {

    /**
     * 注入UserDao对象，用于执行数据库操作。
     */
    @Autowired
    private UserDao userDao;

    @Override
    public List<User> findAll(User user, int offset, int pageSize) {
        // 以下两种方式均可
        // 第一种方式：直接传入用户名和密码
        // List<User> users = userDao.findAll(user.getName(), user.getPass(), offset, pageSize);
        // 第二种方式：传入User对象
        List<User> users = userDao.findAll2(user, offset, pageSize);
        return users;
    }

    @Override
    public int count(User user) {
        // 计算符合查询条件的用户数量
        return userDao.count(user);
    }

    @Override
    public int deleteUserById(int id) {
        // 根据用户ID删除用户
        return userDao.deleteUserById(id);
    }

    @Override
    public int addUser(User user) {
        // 添加新用户
        return userDao.addUser(user);
    }

    @Override
    public User findById(int id) {
        // 根据用户ID查找用户
        return userDao.findById(id);
    }

    @Override
    public int updateUser(User user) {
        // 更新用户信息
        return userDao.updateUser(user);
    }

    @Override
    public boolean login(User user) {
        // 验证用户登录信息
        if (userDao.login(user) > 0) {
            return true;
        }
        return false;
    }

    @Override
    public int findUserByName(String name) {
        // 根据用户名查找用户
        return userDao.findUserByName(name);
    }

}
//UserServiceImpl 类实现了 UserService 接口，提供了用户管理的各种服务方法。
// 通过注入 UserDao 对象，可以与数据库进行交互，完成用户数据的增删改查、分页查询、
// 登录验证等操作。这些方法在实际应用中非常常见，是用户管理系统的核心功能之一。
